package com.jk.vehicle.mini.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@ApiModel("车辆详情数据对象")
@Data
public class BicycleDetailVO {
    @ApiModelProperty("厂家名称")
	private String corpName;
    @ApiModelProperty("车辆型号名称")
	private String prodName;
    @ApiModelProperty("车辆名称")
	private String name;
    @ApiModelProperty("车辆mac地址")
    private String mac;
    @ApiModelProperty("车辆图片文件对象")
    private String imgs;
    @ApiModelProperty("车辆图片预览地址，多个逗号分隔")
	private String imgUris;
    @ApiModelProperty("车辆买入时间")
	private Date buyDate;
    @ApiModelProperty("车辆序列号")
	private String code;
    @ApiModelProperty("车辆分享给哪些用户集合")
	private List<UserBicycleLinkVO> userBicycleLinkList;

    public static final class BicycleDetailVOBuilder {
        private String corpName;
        private String prodName;
        private String name;
        private String mac;
        private String imgs;
        private String imgUris;
        private Date buyDate;
        private String code;
        private List<UserBicycleLinkVO> userBicycleLinkList;

        private BicycleDetailVOBuilder() {
        }

        public static BicycleDetailVOBuilder aBicycleDetailVO() {
            return new BicycleDetailVOBuilder();
        }

        public BicycleDetailVOBuilder withCorpName(String corpName) {
            this.corpName = corpName;
            return this;
        }

        public BicycleDetailVOBuilder withProdName(String prodName) {
            this.prodName = prodName;
            return this;
        }

        public BicycleDetailVOBuilder withName(String name) {
            this.name = name;
            return this;
        }

        public BicycleDetailVOBuilder withMac(String mac) {
            this.mac = mac;
            return this;
        }

        public BicycleDetailVOBuilder withImgs(String imgs) {
            this.imgs = imgs;
            return this;
        }

        public BicycleDetailVOBuilder withImgUris(String imgUris) {
            this.imgUris = imgUris;
            return this;
        }

        public BicycleDetailVOBuilder withBuyDate(Date buyDate) {
            this.buyDate = buyDate;
            return this;
        }

        public BicycleDetailVOBuilder withCode(String code) {
            this.code = code;
            return this;
        }

        public BicycleDetailVOBuilder withUserBicycleLinkList(List<UserBicycleLinkVO> userBicycleLinkList) {
            this.userBicycleLinkList = userBicycleLinkList;
            return this;
        }

        public BicycleDetailVO build() {
            BicycleDetailVO bicycleDetailVO = new BicycleDetailVO();
            bicycleDetailVO.setCorpName(corpName);
            bicycleDetailVO.setProdName(prodName);
            bicycleDetailVO.setName(name);
            bicycleDetailVO.setMac(mac);
            bicycleDetailVO.setImgs(imgs);
            bicycleDetailVO.setImgUris(imgUris);
            bicycleDetailVO.setBuyDate(buyDate);
            bicycleDetailVO.setCode(code);
            bicycleDetailVO.setUserBicycleLinkList(userBicycleLinkList);
            return bicycleDetailVO;
        }
    }
}